package com.amigo.online.common.param.result;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Digits;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;

public class VideoInfo implements Serializable {

	private static final long serialVersionUID = -1018464098172466034L;

	@Digits(integer = 20, fraction = 0)
	private Long id;
	@Digits(integer = 20, fraction = 0)
	private Long userId;
	@Length(min = 1, max = 200)
	private String video;
	@NotBlank
	@Length(min = 1, max = 200)
	private String cover;
	@Min(1)
	@Max(20)
	private Integer duration;
	@Length(min = 1, max = 200)
	private String href;
	@Min(1)
	@Max(20)
	private Integer ads;
	@Min(1)
	@Digits(integer = 10, fraction = 0)
	private Integer type;
	@Min(1)
	@Digits(integer = 20, fraction = 0)
	private Integer up;
	@Min(1)
	private Integer look;
	@Min(1)
	@Digits(integer = 20, fraction = 0)
	private Integer comment;
	private String longitude;
	private String latitude;
	@NotBlank
	@Length(min = 1, max = 50)
	private String title;
	@NotBlank
	@Length(min = 1, max = 200)
	private String content;
	@Length(min = 1)
	private Integer width;
	@Length(min = 1)
	private Integer height;
	@Digits(integer = 100, fraction = 0)
	private Long createdTime;
	private Integer destroy;
	private Integer recommended;
	@Digits(integer = 100, fraction = 0)
	private Long locationId;
	private Integer share;
	private Double distance = -1d; // 距离（m）
	private MusicInfo music; // 音乐
	private VideoUserInfo user; // 视频用户信息
	private Long musicId;//
	private Long areaId;
	@JsonIgnore
	private String nickname;
	@JsonIgnore
	private String avatar;
	@JsonIgnore
	private String account;
	
	private String dis;
	
	private String waterMarkVideo;	
	
	private Integer allowe_promoted;	//是否允许推广 1允许 0禁止
	private Long promote_id = 0L;	//速推Id
	public String getWaterMarkVideo() {
		return waterMarkVideo;
	}

	public void setWaterMarkVideo(String waterMarkVideo) {
		this.waterMarkVideo = waterMarkVideo;
	}

	public String getDis() {
		return dis;
	}

	public void setDis(String dis) {
		this.dis = dis;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getAvatar() {
		return avatar;
	}

	public void setAvatar(String avatar) {
		this.avatar = avatar;
	}



	public Long getMusicId() {
		return musicId;
	}

	public void setMusicId(Long musicId) {
		this.musicId = musicId;
	}

	public Double getDistance() {
		return distance;
	}

	public void setDistance(Double distance) {
		this.distance = distance;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getUserId() {
		return userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public String getVideo() {
		return video;
	}

	public void setVideo(String video) {
		this.video = video;
	}

	public String getCover() {
		return cover;
	}

	public void setCover(String cover) {
		this.cover = cover;
	}

	public Integer getDuration() {
		return duration;
	}

	public void setDuration(Integer duration) {
		this.duration = duration;
	}

	public String getHref() {
		return href;
	}

	public void setHref(String href) {
		this.href = href;
	}

	public Integer getAds() {
		return ads;
	}

	public void setAds(Integer ads) {
		this.ads = ads;
	}

	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public Integer getUp() {
		return up;
	}

	public void setUp(Integer up) {
		this.up = up;
	}

	public Integer getLook() {
		return look;
	}

	public void setLook(Integer look) {
		this.look = look;
	}

	public Integer getComment() {
		return comment;
	}

	public void setComment(Integer comment) {
		this.comment = comment;
	}

	public String getLongitude() {
		return longitude;
	}

	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}

	public String getLatitude() {
		return latitude;
	}

	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Long getCreatedTime() {
		return createdTime;
	}

	public void setCreatedTime(Long createdTime) {
		this.createdTime = createdTime;
	}

	public Integer getDestroy() {
		return destroy;
	}

	public void setDestroy(Integer destroy) {
		this.destroy = destroy;
	}

	public Integer getRecommended() {
		return recommended;
	}

	public void setRecommended(Integer recommended) {
		this.recommended = recommended;
	}

	public Long getLocationId() {
		return locationId;
	}

	public void setLocationId(Long locationId) {
		this.locationId = locationId;
	}

	public MusicInfo getMusic() {
		return music;
	}

	public void setMusic(MusicInfo music) {
		this.music = music;
	}

	public VideoUserInfo getUser() {
		return user;
	}

	public void setUser(VideoUserInfo user) {
		this.user = user;
	}

	public Integer getWidth() {
		return width;
	}

	public void setWidth(Integer width) {
		this.width = width;
	}

	public Integer getHeight() {
		return height;
	}

	public void setHeight(Integer height) {
		this.height = height;
	}

	public Integer getShare() {
		return share;
	}

	public void setShare(Integer share) {
		this.share = share;
	}

	public VideoInfo() {
		super();
	}

	public Long getAreaId() {
		return areaId;
	}

	public void setAreaId(Long areaId) {
		this.areaId = areaId;
	}
	
	public String getAccount() {
		return account;
	}

	public void setAccount(String account) {
		this.account = account;
	}
	
	public Integer getAllowe_promoted() {
		return allowe_promoted;
	}

	public void setAllowe_promoted(Integer allowe_promoted) {
		this.allowe_promoted = allowe_promoted;
	}

	public Long getPromote_id() {
		return promote_id;
	}

	public void setPromote_id(Long promote_id) {
		this.promote_id = promote_id;
	}

	public VideoInfo(Long id, Long userId, String video, String cover, Integer duration, String href, Integer ads,
			Integer type, Integer up, Integer look, Integer comment, String longitude, String latitude, String title,
			String content, Long createdTime, Integer destroy, Integer recommended, MusicInfo music, String nickname,
			String avatar, Integer width, Integer height, Integer share, Long areaId, Long musicId, String waterMarkVideo,
			Integer allowe_promoted) {
		super();
		this.id = id;
		this.userId = userId;
		this.video = video;
		this.cover = cover;
		this.duration = duration;
		this.href = href;
		this.ads = ads;
		this.type = type;
		this.up = up;
		this.look = look;
		this.comment = comment;
		this.longitude = longitude;
		this.latitude = latitude;
		this.title = title;
		this.content = content;
		this.createdTime = createdTime;
		this.destroy = destroy;
		this.recommended = recommended;
		this.music = music;
		this.width = width;
		this.height = height;
		this.share = share;
		this.areaId = areaId;
		this.musicId = musicId;
		this.waterMarkVideo = waterMarkVideo;
		this.allowe_promoted = allowe_promoted;
	}

	public static class VideoUserInfo implements Serializable {
		private static final long serialVersionUID = 2612743451588513685L;
		private String nickname;
		private String avatar;
		private String avatar_small;
		private String longitude;
		private String latitude;
		private boolean uped; // 点赞状态
		private boolean followed; // 关注状态
		private String account;
		private Integer type;

		public String getNickname() {
			return nickname;
		}

		public void setNickname(String nickname) {
			this.nickname = nickname;
		}

		public String getAvatar() {
			return avatar;
		}

		public void setAvatar(String avatar) {
			this.avatar = avatar;
		}

		public String getLongitude() {
			return longitude;
		}

		public void setLongitude(String longitude) {
			this.longitude = longitude;
		}

		public String getLatitude() {
			return latitude;
		}

		public void setLatitude(String latitude) {
			this.latitude = latitude;
		}

		public boolean getUped() {
			return uped;
		}

		public void setUped(boolean uped) {
			this.uped = uped;
		}

		public boolean getFollowed() {
			return followed;
		}

		public void setFollowed(boolean followed) {
			this.followed = followed;
		}

		public String getAccount() {
			return account;
		}

		public void setAccount(String account) {
			this.account = account;
		}

		public String getAvatar_small() {
			return avatar_small;
		}

		public void setAvatar_small(String avatar_small) {
			this.avatar_small = avatar_small;
		}

		public Integer getType() {
			return type;
		}

		public void setType(Integer type) {
			this.type = type;
		}
		
	}
}
